package com.gadgets.busi.bm01.repository;

import com.gadgets.busi.bm01.dto.TxtCopyQueryDTO;
import com.gadgets.busi.bm01.dto.TxtCopyStatusChangeDTO;
import com.gadgets.busi.bm01.dto.TxtCopyTaskPathDTO;
import com.gadgets.busi.bm01.dto.TxtCopyTaskPercentDTO;
import com.gadgets.busi.bm01.pojo.CopyTxtTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * The interface Copy txt task repository.
 *
 * @author UncleXiu
 * @version v1.0.0
 * @data 2020 -09-21
 */
@Repository
@Mapper
public interface ICopyTxtTaskRepository {

    /**
     * 新增文本拷贝任务信息
     *
     * @param task 任务信息
     */
    void insertCopyTxtTask(@Param(value = "task") CopyTxtTask task);

    /**
     * 文本拷贝任务变更状态
     *
     * @param statusChangeDTO 状态机
     * @return 更新记录数 int
     */
    int updateTaskStatus(@Param(value = "changeDto") TxtCopyStatusChangeDTO statusChangeDTO);

    /**
     * 更新任务执行百分比
     *
     * @param percentDTO 变更信息
     * @return 更新记录数 int
     */
    int updateTaskPercent(@Param(value = "percentDto") TxtCopyTaskPercentDTO percentDTO);

    /**
     * 更新任务文件路径
     * @param pathDTO   路径信息
     * @return  更新记录数 int
     */
    int updateTaskFilePath(@Param(value = "pathDto")TxtCopyTaskPathDTO pathDTO);

    /**
     * 条件查询拷贝文本
     * @param queryDTO  查询条件
     * @return          查询结果
     */
    List<CopyTxtTask> selectCopyTxtTask(@Param(value = "queryDto") TxtCopyQueryDTO queryDTO);

}
